Performance management of web applications allows for the monitoring and measurement of relevant performance metrics to assess the performance of applications. Such assessment is necessary as it enables the detection, diagnosis, and remedying of an application's performance to ensure that it meets or exceeds an end user's expectations. The performance of web applications can be monitored, using instrumentation based on the technology being used. Products such as Introscope™ allow for instrumentation and monitoring possibilities for java-based web applications. Alternatively, there also exists a number of software as a service providers which deliver performance data from an application server based on each user request or deliver performance data based on a combination of requests.
While software as a service providers and software such as Introscope™ may provide important information about the performance of a server, the performance data provided only provides information about the performance on the server side and does not provide information about the performance on the end user side. The delivered data may convey information including the server response time, but does not provide information about an end user response time. Much of an end user response time depends on the device that the user is connecting to the server with, the type of connection that the user is making (i.e. such using Ethernet, wireless, or connecting through a mobile network). Depending on the device a user is connecting to a server with, over 70% of the end user response time may be broken down into time spent parsing or rendering through the data. Users using mobile clients typically suffer from a significantly higher end user response time than users using a desktop computer, even though the server response time is the same for both devices.
Ultimately, performance data that is transmitted back from software such as Introscope™ or by any of the software as a service providers sending real time performance data, does not provide or factor in data such as client rendering time, unzip time, or parsing time. Moreover, this delivered performance data does not factor in the memory allocation on a user's device, the transferred and received bytes on a user's device, the input/output of a device (i.e. such as time spent reading or writing to disk or flash memory on a mobile device), or other key performance indicators on the user side.
Thus there remains a need in the art, for a system and method which allows for the generation of performance data based on the monitoring of the performance on a user's side. There also remains a need in the art, for a system and method which allows for the improvement of an application's performance based on the monitoring of the performance on the user side and integrating with the monitoring of the performance on the server side.